package ${basePackage}.service.${modulePackage};

import ${basePackage}.base.result.PageResult;
import ${basePackage}.base.service.BaseService;
import ${basePackage}.model.${modulePackage}.add.${moduleName}AddParams;
import ${basePackage}.model.${modulePackage}.add.${moduleName}AddVo;
import ${basePackage}.model.${modulePackage}.delete.${moduleName}DeleteParams;
import ${basePackage}.model.${modulePackage}.delete.${moduleName}DeleteVo;
import ${basePackage}.model.${modulePackage}.detail.${moduleName}DetailParams;
import ${basePackage}.model.${modulePackage}.detail.${moduleName}DetailVo;
import ${basePackage}.model.${modulePackage}.list.${moduleName}ListParams;
import ${basePackage}.model.${modulePackage}.list.${moduleName}ListVo;
import ${basePackage}.model.${modulePackage}.page.${moduleName}PageParams;
import ${basePackage}.model.${modulePackage}.page.${moduleName}PageVo;
import ${basePackage}.model.${modulePackage}.tree.${moduleName}TreeParams;
import ${basePackage}.model.${modulePackage}.tree.${moduleName}TreeVo;
import ${basePackage}.model.${modulePackage}.update.${moduleName}UpdateParams;
import ${basePackage}.model.${modulePackage}.update.${moduleName}UpdateVo;
import ${basePackage}.entity.${domainName};

import java.util.List;

/**
 * @version: ${version}
 * @author: ${author}
 * @date: ${date?string("yyyy/MM/dd HH:mm")}
 * @description: ${name}->${tableName}
 */
public interface ${moduleName}Service extends BaseService<${domainName}> {

    /**
     * 分页
     *
     * @param params
     * @return
     */
    PageResult<${moduleName}PageVo> page(${moduleName}PageParams params);

    /**
     * 树接口
     *
     * @param params
     * @return
     */
    List<${moduleName}TreeVo> tree(${moduleName}TreeParams params);

    /**
     * 列表
     *
     * @param params
     * @return
     */
    List<${moduleName}ListVo> list(${moduleName}ListParams params);

    /**
     * 新增
     *
     * @param params
     * @return
     */
    ${moduleName}AddVo add(${moduleName}AddParams params);

    /**
     * 更新
     *
     * @param params
     * @return
     */
    ${moduleName}UpdateVo update(${moduleName}UpdateParams params);

    /**
     * 详情
     *
     * @param params
     * @return
     */
    ${moduleName}DetailVo detail(${moduleName}DetailParams params);

    /**
     * 删除
     *
     * @param params
     * @return
     */
    ${moduleName}DeleteVo delete(${moduleName}DeleteParams params);
}
